home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
c
/
datelib.exe
/
CNVTTIME.C
< prev
next >
Wrap
C/C++ Source or Header
|
1992-03-27
|
4KB
|
146 lines
static char cnvttime_prog[] = "@(#)Zeitkonversionen";
static char cnvttime_ver[] = "@(#)ver 1.00/kr ; 10.06.91";
/* cnvttime Konvertieren von Zeitformaten
**
** Autor Klaus Rath
**
** Deklaration char *cnvttime(char *zeit, int dest_format, char *erg);
**
** Übergabe Die Funktion erwartet einen String in einem der folgenden
** Formate :
** hh:mm[:ss] -- Formate 1,2
** hh.mm[.ss] -- Formate 3,4
** hhmm[ss] -- Datenbankformate 5,6
** sowie einen int-Wert, der das Ausgabeformat festlegt.
** ( siehe datum.h )
**
** Rückgabe Zeiger auf ein char-Array, das ausreichend dimensioniert
** sein sollte, bzw. im Fehlerfall NULL.
**
** Änderungen 1.00 ; 10.06.91
** - Erste Version
*/
#include <stdio.h>
#include <string.h>
#ifdef __TURBOC__
#define ANSI
#define MSDOS
#include <stdlib.h>
#endif
#include "datum.h"
#ifdef ANSI
char *cnvttime(char *tstring, int dest_format, char *erg)
#else
char *cnvttime(tstring,dest_format,erg)
char *tstring;
int dest_format;
char *erg;
#endif
{
char stunden_s[3],minuten_s[3],sekunden_s[3];
int format;
erg[0] = '\0';
/* Überprüfung auf Gültigkeit bzw. Format :
*/
format = checktime(tstring);
if ( !format ) {
return(NULL);
}
/* Falls Formate identisch sind, sind wir fertig :
*/
if ( format == dest_format ) {
return(tstring);
}
/* Format überprüfen und umkopieren :
*/
if ( format >= 1 && format <= 4 ) {
stunden_s[0] = tstring[0];
stunden_s[1] = tstring[1];
stunden_s[2] = '\0';
minuten_s[0] = tstring[3];
minuten_s[1] = tstring[4];
minuten_s[2] = '\0';
if ( format == 2 || format == 4 ) {
sekunden_s[0] = tstring[6];
sekunden_s[1] = tstring[7];
sekunden_s[2] = '\0';
}
else {
sekunden_s[0] = '0';
sekunden_s[1] = '0';
sekunden_s[2] = '\0';
}
} /* ENDE: Formate 1-4 */
else if ( format == 5 || format == 6 ) { /* Datenbank-Format */
stunden_s[0] = tstring[0];
stunden_s[1] = tstring[1];
stunden_s[2] = '\0';
minuten_s[0] = tstring[2];
minuten_s[1] = tstring[3];
minuten_s[2] = '\0';
if ( format == 6 ) {
sekunden_s[0] = tstring[4];
sekunden_s[1] = tstring[5];
sekunden_s[2] = '\0';
}
else {
sekunden_s[0] = '0';
sekunden_s[1] = '0';
sekunden_s[2] = '\0';
}
} /* ENDE: Datenbankformate 5 und 6 */
else
return(NULL);
/* ENDE:if(Formatprüfung und Kopierung) */
/* Umkopieren in das passende Format :
*/
switch ( dest_format ) {
case TI_HM_D:
strcpy(erg,stunden_s);
strcat(erg,":");
strcat(erg,minuten_s);
return(erg);
case TI_HMS_D:
strcpy(erg,stunden_s);
strcat(erg,":");
strcat(erg,minuten_s);
strcat(erg,":");
strcat(erg,sekunden_s);
return(erg);
case TI_HM_P:
strcpy(erg,stunden_s);
strcat(erg,".");
strcat(erg,minuten_s);
return(erg);
case TI_HMS_P:
strcpy(erg,stunden_s);
strcat(erg,".");
strcat(erg,minuten_s);
strcat(erg,".");
strcat(erg,sekunden_s);
return(erg);
case TI_HM_DB:
strcpy(erg,stunden_s);
strcat(erg,minuten_s);
return(erg);
case TI_HMS_DB:
strcpy(erg,stunden_s);
strcat(erg,minuten_s);
strcat(erg,sekunden_s);
return(erg);
} /* ENDE: switch(dest_format) */
return(NULL);
} /* ENDE: cnvttime() */